#include<iostream>
#include<string>
#include <sys/types.h>
#include <sys/socket.h>
#include<memory>
using namespace std;
class Buffer{
public:
    Buffer(int size);
    ~Buffer(); 
    
    //写内存 1.直接写 2.接收套接字数据
    int AppendData(const char*data,int size);
    int AppendString(const char*data);
    int SocketRead(int fd);
    //发送数据
    int SendData(int socket);
    //根据\r\n取出一行，找到其在数据块的位置，返回该值
    char*FindCRLF();
    char*GetData(); //获取数据
    int GetReadPos(); //获取已读的位置
    int GetWritePos();  //获取已写的位置
    int GetCapacity();  //获取容
    void readPosIncrease(int size);
    void writePosIncreasw(int size);
    //扩容
    void MoveRoom(int size);
    //剩余未读的内存s
    int readablesize();
    //剩余能写的内存
    int writeablesize();
private:
    char*m_data; 
    int m_readPos;
    int m_writePos;
    int m_capacity;  //容量
};
#define OPEN 0
void log(string str);
